A digital communications system sends data bits from one location, a transmitting location, to another location, a receiving location. Typically a digital communications system utilizes a transmitter located at the transmitting location to transmit a digital communications signal across a physical communication medium (aka. a communications channel) to a receiver located at the receiving location. The digital communications signal is typically made up of a series of voltage pulses of multiple different voltage levels measured at equal time periods (aka. equal time slices). In practice, a voltage level is based on a voltage range. For instance, a “target voltage” may be at the center of a voltage range, but any voltage between the minimum voltage and maximum voltage of the range is interpreted to be the “target voltage.” As an example, for a binary digital voltage system, a first voltage level represents a first digital value and a second voltage value represents a second digital value. A voltage value below a “threshold” value is interpreted as a pulse representing the first digital value while a voltage value above the “threshold” value is interpreted as a pulse representing the second digital value. Often the first and second digital values are called either “off” and “on” or “0” and “1.” Often the nomenclature is interchangeable between off/on and 0/1 such that a “0” is “off” and a “1” is “on.” In many cases a 0.0V voltage value represents an “off” data value and a 1.0V voltage value represents an “on” data value, but the actual voltage values may be changed as desired by the system developer to meet the technical requirements of the system and the hardware selected for the system. Sometimes the actual voltage levels utilized in communications system may be “normalized” to 0.0V for “off” and 1.0V for “on” in order to simplify the discussion of the operation of the communications system. The pulses are typically sent by the transmitter as a series of pulses with each pulse having a width of one time period/time slice. The receiver measures the voltage level of the signal once each time period to obtain the “pulse” data value. Often, the pulse is read by the receiver at the center of the pulse width.
In an ideal system, the pulses are pure square waves and the communications channel carries the pulses without any loss or distortion. In a real world application each pulse has a non-rectangular wave shape and there is distortion introduced into the signal by the communications channel. Some types of distortion include impairments such as: noise, crosstalk, and Inter-Symbol Interference (ISI). In a SERial-DESerializer (SerDes) scenario, the physical implementation of the communications channel may be cables, backplane traces, etc., which introduce (ISI) into the communications signal. Typical real-world communications channels are limited such that a signal pulse frequency cannot exceed a particular high frequency value because of the distortion introduced by the communications channel, which typically has a low-pass filtering effect. Different filters, equalizers, and other compensation techniques have been utilized to attempt to compensate for the distortion introduced by the communications channel.